﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OAProject.Domain.Interfaces
{
    /// <summary>
    /// 定义一个泛型仓储接口，单词Repository 中文意思：仓储
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IRepository<T> where T : class
    {
        //查询所有数据
        List<T> Show();

        //添加
        int Insert(T obj);

        //删除
        int Delete(int id);

        //修改
        int Update(T obj);

        //查询
        //根据主键查询(返回单条数据)
        T GetById(int id);

        //根据条件查(返回集合数据)
        IEnumerable<T> GetList(string whereCondition="",object paras=null);

        //分页查询(返回集合数据和总条数)
        IEnumerable<T> GetPageList(int pageIndex, int pageSize, out int totalCount, string whereCondition = "", object paras = null);
    }
}
